Pengantar
Penggunaan ggplot2 dalam analisis data didasarkan pada fleksibilitas dan kekuatannya dalam membuat visualisasi data yang estetis, informatif, dan mudah disesuaikan. Dengan pendekatan berbasis Grammar of Graphics, ggplot2 memungkinkan pengguna untuk membangun grafik secara modular dengan menambahkan lapisan (layers) seperti titik, garis, atau teks, sehingga mempermudah eksplorasi hubungan antar variabel. Selain itu, ggplot2 mendukung berbagai jenis grafik, mulai dari grafik univariat seperti histogram, bivariat seperti scatter plot, hingga multivariat seperti heatmap, yang semuanya dapat dioptimalkan untuk analisis data. Library ini juga mendukung pengaturan estetika seperti warna, ukuran, dan tema secara detail, sehingga hasil visualisasi tidak hanya membantu analisis tetapi juga komunikatif dan menarik secara visual. Hal inilah yang menjadikan ggplot2 sebagai pilihan utama untuk analisis data di R.
data <- read.csv("data.csv")
Univat
# Histogram angka_harapan_hidup
library(ggplot2)
ggplot(data, aes(x = Angka_Harapan_Hidup)) +
geom_histogram(binwidth = 5, fill = "#E5989B", color = "#B5828C") +
labs(title = "Distribusi Angka Harapan Hidup", x = "Angka Harapan Hidup", y = "Frekuensi") +
theme_minimal()
Bivariat
scatter plot
pendapatan_perkapita dan angka_harapan_hidup
# Memuat library
library(ggplot2)
# Menghitung total populasi per benua
total_population <- aggregate(Populasi ~ Benua, data = data, sum)
# Visualisasi dengan sumbu dibalik
ggplot(total_population, aes(y = Benua, x = Populasi, fill = Benua)) +
geom_bar(stat = "identity") +
labs(title = "Total Populasi Berdasarkan Benua",
x = "Total Populasi",
y = "Benua") +
theme_minimal() +
scale_fill_brewer(palette = "Pastel1")
Multivariat
suppressPackageStartupMessages(library(plotly))
# Membuat 3D scatter plot
plot_ly(data, x = ~Pendapatan_per_kapita, y = ~Angka_Harapan_Hidup, z = ~Populasi,
type = "scatter3d", mode = "markers", color = ~Benua) %>%
layout(title = "3D Scatter Plot: Pendapatan Per Kapita vs Angka Harapan Hidup vs Populasi",
scene = list(xaxis = list(title = 'Pendapatan Per Kapita'),
yaxis = list(title = 'Angka Harapan Hidup'),
zaxis = list(title = 'Populasi')))
interaktif
Scatter plot dengan animasi berdasarkan Tahun
library(plotly)
options(warn = -1)
fig <- plot_ly(data,
x = ~Pendapatan_per_kapita,
y = ~Angka_Harapan_Hidup,
size = ~Populasi,
color = ~Benua,
frame = ~Tahun,
text = ~paste("Negara:", Negara,
"<br>Pendapatan:", Pendapatan_per_kapita,
"<br>Harapan Hidup:", Angka_Harapan_Hidup,
"<br>Populasi:", Populasi),
type = 'scatter',
mode = 'markers') %>%
layout(title = "Perubahan Multivariat dari Tahun ke Tahun",
xaxis = list(title = "Pendapatan Per Kapita"),
yaxis = list(title = "Angka Harapan Hidup"))
fig
# Mengembalikan opsi peringatan ke normal
options(warn = 0)